import os
import logging
from logging.handlers import RotatingFileHandler

# 获取当前脚本所在目录
BASE_DIR = os.path.dirname(os.path.abspath(__file__))

# 图标配置
ICON_PNG_PATH = os.path.join(BASE_DIR, "assets", "icon.png")
ICON_ICO_PATH = os.path.join(BASE_DIR, "assets", "icon.ico")
ICON_SIZE = 256  # 图标大小

# 日志配置
LOG_LEVEL = logging.DEBUG  # 可选: DEBUG, INFO, WARNING, ERROR, CRITICAL
LOG_FORMAT = '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
LOG_DATE_FORMAT = '%Y-%m-%d %H:%M:%S'

# 日志文件配置
LOG_DIR = "logs"
LOG_FILE = os.path.join(LOG_DIR, "app.log")
MAX_LOG_SIZE = 10 * 1024 * 1024  # 10MB
BACKUP_COUNT = 5

# 图标路径配置
ICON_PATH = os.path.join(BASE_DIR, "assets", "icon.ico")

def setup_logging():
    """设置日志配置"""
    # 创建日志目录
    if not os.path.exists(LOG_DIR):
        os.makedirs(LOG_DIR)
        print(f"创建日志目录: {LOG_DIR}")
    
    # 配置根日志记录器
    root_logger = logging.getLogger()
    root_logger.setLevel(LOG_LEVEL)
    
    # 创建格式化器
    formatter = logging.Formatter(LOG_FORMAT, datefmt=LOG_DATE_FORMAT)
    
    # 添加文件处理器
    file_handler = RotatingFileHandler(
        LOG_FILE,
        maxBytes=MAX_LOG_SIZE,
        backupCount=BACKUP_COUNT,
        encoding='utf-8'
    )
    file_handler.setLevel(LOG_LEVEL)
    file_handler.setFormatter(formatter)
    root_logger.addHandler(file_handler)
    
    # 添加控制台处理器
    console_handler = logging.StreamHandler()
    console_handler.setLevel(LOG_LEVEL)
    console_handler.setFormatter(formatter)
    root_logger.addHandler(console_handler)
    
    print(f"日志配置完成，日志文件: {LOG_FILE}")

# 缓存配置
CACHE_DIR = "cache"
TRANSCRIPTION_CACHE_DIR = os.path.join(CACHE_DIR, "transcription")
TEXT_CACHE_DIR = os.path.join(CACHE_DIR, "text")
SUBTITLE_CACHE_DIR = os.path.join(CACHE_DIR, "subtitles")  # 新增字幕缓存目录

def setup_cache_dirs():
    """设置缓存目录"""
    for cache_dir in [TRANSCRIPTION_CACHE_DIR, TEXT_CACHE_DIR, SUBTITLE_CACHE_DIR]:
        if not os.path.exists(cache_dir):
            os.makedirs(cache_dir)
            print(f"创建缓存目录: {cache_dir}")

# 字幕生成配置
GENERATE_TITLE_TIMESTAMPS = True  # 是否生成标题时间戳
SUBTITLE_FORMAT = "srt"  # 字幕格式(srt/vtt)

# 初始化配置
setup_logging()
setup_cache_dirs()
